Recently, along with the advancement of networking, systems are becoming popular in which a plurality of objects distributed on a network collaborate with each other to conduct processing. As a technique of allowing a plurality of objects to collaborate with each other to conduct processing, studies of object-oriented programming and component technology have been conducted.
As common specifications of object-oriented programming, CORBA (The Common Object Request Broker: Architecture and Specification) is known. FIG. 10 shows an example of object collaboration in a client/server system based on the CORBA. This system conducts a series of processing using collaboration between a client application and a server application (i.e., object collaboration).
According to the CORBA, an interface of service provided by a client and a server is described by IDL (Interface Definition Language). Herein, regarding an operation group to be executed by an object, an operation name, parameters, a return value, exceptional processing upon occurrence of an error, additional information, and the like are defined. The contents defined by the IDL are compiled by a dedicated compiler, whereby a stub for a client and a skeleton for a server are generated. A client application starts an operation by invoking a routine provided by the stub. The stub and skeleton are generated by programming language used by a corresponding client application or server application. Thus, it is becoming easy to configure object collaboration processing by the CORBA or the like. However, in order to actually configure such collaboration processing, for example, by using the above-mentioned CORBA, it is required to understand the CORBA. In addition, it is required to design an object in accordance with the specifications of the CORBA and to define an interface of service by the IDL. More specifically, it is required for a person configuring a system to know a method for using the CORBA. It is also required for the person to be aware of the relationship between the respective objects. That is, it is required to clarify which processing is conducted by each object and what are transfer parameters required for conducting the processing.
Herein, it is assumed that an object is replaced with a human being. In this case, it is desired that whether or not each object receives information flowing through a communication space and which processing is conducted with respect to the received information are varied. So-called free collaboration between objects is desired. As a technique of realizing this, there is an object collaboration apparatus. According to the technique of the object collaboration apparatus, a message (that does not specify an object of a receiver) flows through a communication space shared by the respective objects, and each object captures the message. Each object is provided with a message/action reaction table. Each object checks whether or not an action with respect to the captured message is described in the message/action reaction table held in each object, and executes the corresponding action if it is described. In terms of the operation of an object, the object reacts to a particular message, and does not react to the other messages. In the object collaboration apparatus, objects collaborate with each other loosely and flexibly via a message, and it is easy to configure and change a collaboration relationship between objects. Thus, an object collaboration apparatus using a message/action reaction table is an excellent technique. The above-mentioned object collaboration apparatus has a basic configuration of an object collaboration apparatus using a message/action reaction table. Further application techniques have been studied on the following points.
A first study is directed to flexible handling of the difference in a message configuration suitable for each platform in the case where object collaboration is conducted by using various platforms. In the case of assuming wide scalability, i.e., any platform capable of receiving a message such as PDA (Personal Digital Assistance) provided with an OS for small scale equipment, a personal computer, a UNIX workstation, and a main frame provided with an OS for large scale equipment, a message configuration and a message length may be varied which are suitable to deal with for a platform in each range. It is convenient to provide a system in which a message can be received by platforms of all the objects participating in object collaboration, and performance can be exhibited sufficiently for a platform in each range.
A second study is directed to enhancement of a processing efficiency and a processing speed in the case where the number of collaborating objects and the number of platforms are increased, and the number of messages flowing through a core field to be a communication path is increased.
A third study is directed to configuration of synchronization collaboration between objects. Herein, synchronization collaboration refers to that an event of a particular object (object of a collaboration target) follows an event of a particular object (object of a collaboration origin). Typically, the synchronization collaboration refers to that an object of a collaboration target executes the same event (typically, movement of a mouse) in synchronization with an event of an object of a collaboration origin.